Nowadays, collaborative Web applications are widespread since they exhibit numerous advantages in contrast to traditional desktop applications. Leveraging the Web as an application platform provides users with access from different devices (e.g., PCs, smartphones, etc.) and allows immediate adoption without requiring time-consuming installation procedures. Moreover, real-time collaborative Web applications such as Google Docs allow multiple users to edit the same document simultaneously replacing conventional document merging or document locking techniques.
Existing collaborative applications support a variety of shared editing use cases ranging from jointly authoring text documents, spreadsheets, and presentations to collaboratively creating source code files or Business Process Model and Notation (BPMN) models. Shared editing applications have to incorporate concurrency control capabilities to enable users shared access. That allows synchronizing numerous document instances in real-time and enables potential editing conflicts to be resolved automatically (e.g., if two users change the same word or graphic). However, specific concurrency control services are not included in general-purpose frameworks such as jQuery® or Knockout®. Hence, developers have to get familiar with specific collaboration frameworks (e.g., ShareJS®). Further, even the collaborative Web applications are appealing to end-users, the implementation is a complicated and a time-consuming task due to the insufficient development support.
The extra concurrency control library requires additional programming tasks that may substantially increase the development costs. First, Web developers have to get familiar with an extra programming library. Second, synchronizing multiple document instances requires capturing and replaying all document changes that may involve plenty of source code changes. Third, introducing a number of scattered source code changes contradicts the separation-of-concerns principle and eventually increases maintenance effort.